Класс CEdit обеспечивает функциональные возможности средств редактирования Windows. Средства редактирования - прямоугольное дочернее окно в которое пользователь может вводить текст.
Вы можете создавать средства редактирования из шаблона диалога или непосредственно в Вашем коде. В обоих случаях, сначала вызывают конструктор CEdit, чтобы создать объект CEdit, затем вызывают Create функцию чтобы создать средства редактирования Windows и прикреплять их к объекту CEdit.
Конструкция может быть процесс с одним шагом в классе, полученном из CEdit. Запишите конструктор для полученного класса, и обращение Create изнутри конструктора.
CEdit наследует значительные функциональные возможности из CWnd. Чтобы устанавливать и получать текст из объекта CEdit, используйте CWnd функции SetWindowText и GetWindowText, которые устанавливают или получают все содержание средств редактирования, даже если это - элемент управления мультистроки. Также, если средства редактирования - мультистрока, получать и устанавливать часть текста элемента управления можно вызывая CEdit функции GetLine, SetSel, GetSel, и ReplaceSel.
Если Вы хотите обрабатывать уведомительные сообщения Windows посланные средствами редактирования родителю (обычно класс полученный из CDialog), добавьте вход карты сообщения и функцию драйвера сообщения к родительскому классу для каждого сообщения.
Каждый вход карты сообщения берет следующую форму:
ON_Notification( id, memberFxn )
Где ID определяет дочернее окно элемента редактирования посылающего сообщение, а memberFxn - имя родительской функции , которую Вы записали в дескриптор сообщения.
Функциональный прототип родителя следующий:
afx_msg void memberFxn( );
Следующее - список потенциальных входов карты сообщения и описания случаев в которых они были бы посланы родителю:
ON_EN_CHANGE Пользователь принял действие которое возможно изменило текст в элементе редактирования. В отличие от EN_UPDATE уведомительного сообщения, это уведомительное сообщение послано после того, как Windows модифицирует дисплей. ON_EN_ERRSPACE Элемент редактирования не может распределять достаточно памяти, чтобы встретить специфический запрос. ON_EN_HSCROLL Пользователь нажимает в элемент редактирования горизонтальный слайдер. Родительскому окну сообщается прежде чем экран модифицируется. ON_EN_KILLFOCUS Элемент редактирования теряет фокус ввода. ON_EN_MAXTEXT Текущая вставка превысила определенное число символов для элемента редактирования и была усечен. Также посылается когда элемент редактирования не имеет ES_AUTOHSCROLL стиля и число символов, которое будет вставлено превысил бы ширину элемента редактирования. Также посылается когда элемент редактирования не имеет ES_AUTOVSCROLL стиль и общее число строк следующих из вставки текста превысил бы высоту средств редактирования. ON_EN_SETFOCUS Посланный, когда элемент редактирования получают фокус ввода. ON_EN_UPDATE Элемент редактирования собирается отображать измененный текст. Посланным после того, как элемент управления форматировал текст, но прежде, чем выведет текст на экран чтобы размер окна мог быть изменен, в случае необходимости. ON_EN_VSCROLL Пользователь нажимает в элементе редактирования вертикальный слайдер. Родительскому окну сообщается прежде, чем экран модифицируется.
Если Вы создаете объект CEdit внутри диалогового окна, объект CEdit автоматически разрушен, когда пользователь закрывает диалоговое окно.
Если Вы создаете объект CEdit из ресурса диалога, использующего редактора диалога, объект CEdit автоматически разрушен, когда пользователь закрывает диалоговое окно.
Если Вы создаете объект CEdit внутри окна, Вы можете быть должны уничтожить его. Если Вы создаете объект CEdit в стеке он разрушен автоматически. Если Вы создаете объект CEdit в "куче ", используя new функцию, Вы должны вызвать delete к объекту чтобы уничтожить его, когда пользователь завершает средства редактирования Windows. Если Вы распределяете любую память в объекте CEdit, перегрузите CEdit destructor, чтобы распорядиться распределениями.
#include <afxwin.h>